热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

工匠|上文_SpringCloudAlibaba14OpenFeign自定义配置+调用优化+超时时间

篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringCloudAlibaba-14OpenFeign自定义配置+调用优化+超时时间相关的知识,希望对你有一定的参考价值

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Spring Cloud Alibaba - 14 OpenFeign自定义配置 + 调用优化 + 超时时间相关的知识,希望对你有一定的参考价值。



文章目录


  • 打印Feign调用日志
    • 日志级别
    • 三部曲
      • step1 添加Feign的自定义配置
      • step2 声明式接口指定配置
      • Step3 声明式接口包日志级别调整为DEBUG

    • 验证

  • 基于yml文件细粒度配置日志
    • 调用方配置yml
    • 验证

  • 使用Feign原生的注解配置
  • 拦截器的应用配置
  • Feign调用优化方案
    • Step 1 开启连接池配置
    • Step 2 调整Feign的日志级别(强烈推荐使用Basic级别的)

  • Feign的生产实践 (Feign的超时为准)
    • 服务方模拟响应过长
    • 超时设置
    • 验证

  • 源码




打印Feign调用日志

默认情况下,Feign的调用式不打印日志,我们需要通过自定义来打印我们的Feign的日志, 生产环境推荐basic


日志级别


级别输出内容
NONE(默认)不记录任何信息
BASIC仅记录请求方法、URL、响应状态和执行时间
HEADERS在BASIC基础上,记录请求和响应的HEADER
FULL记录请求和响应的HEADER、BODY和元数据



三部曲


step1 添加Feign的自定义配置

子模块 artisan-feign-api 增加 配置

import feign.Logger;
import org.springframework.context.annotation.Bean;
/**
* @author 小工匠
* @version 1.0
* @description: 千万不要添加@Configuration,不然会被作为全局配置文件共享
* @date 2022/2/3 22:19
* @mark: show me the code , change the world
*/

public class ProductCenterFeignConfig
@Bean
public Logger.Level level()
return Logger.Level.BASIC;



千万不要添加@Configuration,不然会被作为全局配置文件共享




step2 声明式接口指定配置

子模块 artisan-feign-api


Step3 声明式接口包日志级别调整为DEBUG

接口调用方 artisan-cloud-feign-order 的 application.yml

# 子模块下的声明式接口包 日志级别必须是debug ,不然不打印日志
logging:
level:
com:
artisan:
feignapi: debug




验证

启动两个服务,访问 http://localhost:8080/selectOrderInfoById/1

观察order的日志




基于yml文件细粒度配置日志

调用方配置yml

在调用方artisan-cloud-feign-order ,通过feign:client:config:微服务名称:loggerLevel: 日志级别来指定

# 基于yml文件细粒度配置 - 通过feign:client:config:微服务名称:loggerLevel日志级别来指定
feign:
client:
config:
artisan-product-center:
loggerLevel: full

支持配置多个

我们再来个 artisan-cloud-feign-pay 服务验证下




验证

启动服务,分别访问接口,观察日志




使用Feign原生的注解配置

根据自动装配我们FeignClients的配置中的默认锲约是springmvc , 如果需要修改的话,修改契约即可(使用Feign原生的API)

用的较少, 这里就不演示了。




拦截器的应用配置

Spring Cloud Alibaba - 15 微服务之间使用Feign实现参数的透传




Feign调用优化方案

Step 1 开启连接池配置


Step 2 调整Feign的日志级别(强烈推荐使用Basic级别的)

方法见上文




Feign的生产实践 (Feign的超时为准)

Feign的底层用的是Ribbon,那么我们怎么配置超时时间呢?

我们来测试下


服务方模拟响应过长




超时设置




验证

那如果我们换一下呢 (Ribbon 设置 5秒, Feign设置2秒 , Product仍然休眠3秒) 。看下什么情况

测试一下看看呢




源码

https://github.com/yangshangwei/SpringCloudAlibabMaster


推荐阅读
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文介绍了如何在多线程环境中实现异步任务的事务控制,确保任务执行的一致性和可靠性。通过使用计数器和异常标记字段,系统能够准确判断所有异步线程的执行结果,并根据结果决定是否回滚或提交事务。 ... [详细]
  • 本文探讨了为何相同的HTTP请求在两台不同操作系统(Windows与Ubuntu)的机器上会分别返回200 OK和429 Too Many Requests的状态码。我们将分析代码、环境差异及可能的影响因素。 ... [详细]
  • 本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ... [详细]
  • andr ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文介绍如何使用 Angular 6 的 HttpClient 模块来获取 HTTP 响应头,包括代码示例和常见问题的解决方案。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 本文探讨了如何通过预处理器开关选择不同的类实现,并解决在特定情况下遇到的链接器错误。 ... [详细]
author-avatar
蔡佩琬62777
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有